from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

from app.core.config import settings

# 创建数据库引擎
# pool_pre_ping=True 会在每次从连接池获取连接前，测试连接的有效性
engine = create_engine(settings.DATABASE_URL, pool_pre_ping=True)

# 创建一个 SessionLocal 类，用于创建数据库会话实例
# autocommit=False 和 autoflush=False 是 SQLAlchemy 中推荐的 Web 应用配置
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)